كيفية استخدام وضع Certbot المستقل للحصول على شهادات SSL من Let’s Encrypt على دبيان 10
في الوقت الحاضر، أصبحت الحماية الأمنية عبر الإنترنت أمرًا بالغ الأهمية، وأحد أفضل الطرق لحماية المواقع الإلكترونية هو استخدام بروتوكول HTTPS. لتحقيق ذلك، تحتاج المواقع إلى شهادة SSL/TLS والتي يمكن الحصول عليها من خلال خدمات مثل Let’s Encrypt. يقدم Certbot، وهو أداة مجانية ومفتوحة المصدر، طريقة سهلة للحصول على وتثبيت هذه الشهادات. في هذا المقال، سنتعرف على كيفية استخدام وضع Certbot المستقل للحصول على شهادات SSL من Let’s Encrypt على توزيعة دبيان 10.
1. مقدمة عن Let’s Encrypt و Certbot
Let’s Encrypt هو مشروع مجاني، آمن وموثوق يقدم شهادات SSL/TLS للمواقع الإلكترونية. يهدف المشروع إلى جعل الإنترنت أكثر أمانًا من خلال توفير شهادات SSL مجانية للمواقع. بينما يعد Certbot الأداة الرسمية التي يديرها مشروع Electronic Frontier Foundation (EFF) والتي تسهل عملية الحصول على شهادة SSL وتثبيتها على الخوادم.
2. تثبيت Certbot على دبيان 10
قبل البدء في استخدام Certbot، يجب أولاً تثبيته على الخادم. سنبدأ بتحديث الحزم والتأكد من وجود كل شيء محدث على النظام.
تحديث الحزم
أولاً، من المهم تحديث قائمة الحزم على النظام لضمان تثبيت أحدث الإصدارات.
bashsudo apt update && sudo apt upgrade
تثبيت Certbot
بعد التحديث، يمكننا تثبيت Certbot باستخدام الأمر التالي:
bashsudo apt install certbot
سيقوم هذا الأمر بتثبيت Certbot والاعتماديات الضرورية على جهازك.
تثبيت إضافة Nginx أو Apache (اختياري)
إذا كنت تستخدم Nginx أو Apache على الخادم، فإن Certbot يوفر إضافات لتسهيل تثبيت الشهادات. ولكن في هذه المقالة، سنركز على وضع Certbot المستقل والذي لا يتطلب هذه الإضافات.
3. التحضير للحصول على الشهادة
قبل البدء في استخدام Certbot للحصول على شهادة SSL، يجب أن يكون لديك اسم نطاق (Domain Name) يشير إلى عنوان IP الخاص بالخادم الذي ستقوم بتثبيت الشهادة عليه. على سبيل المثال، إذا كان لديك نطاق مثل example.com، يجب أن يكون قد تم توجيه هذا النطاق إلى الخادم باستخدام إعدادات DNS الصحيحة.
4. استخدام وضع Certbot المستقل
وضع Certbot المستقل (Standalone Mode) هو خيار يستخدم عندما لا ترغب في استخدام إضافات لخوادم الويب مثل Nginx أو Apache. بدلاً من ذلك، يعمل Certbot على تشغيل خادم ويب مؤقت يتيح له التحقق من ملكية النطاق ومن ثم إصدار الشهادة.
خطوات استخدام وضع Certbot المستقل
-
إيقاف خدمة خادم الويب:
نظرًا لأن Certbot في وضعه المستقل يحتاج إلى استخدام المنفذ 80 (HTTP) للتحقق من النطاق، فإنه يجب التأكد من أن خادم الويب مثل Apache أو Nginx لا يستخدم هذا المنفذ. إذا كان لديك خادم ويب يعمل، قم بإيقافه مؤقتًا.
bashsudo systemctl stop nginx # أو apache2 إذا كنت تستخدم Apache -
طلب الشهادة باستخدام Certbot:
بعد إيقاف الخادم، يمكنك طلب الشهادة باستخدام Certbot في وضع المستقل. قم بتنفيذ الأمر التالي:
bashsudo certbot certonly --standalone -d example.com -d www.example.comاستبدل
example.comبالنطاق الخاص بك. سيتواصل Certbot مع خوادم Let’s Encrypt للتحقق من ملكية النطاق ومن ثم إصدار الشهادة. -
التحقق من نجاح العملية:
بمجرد اكتمال العملية، ستظهر رسالة تشير إلى أن الشهادة تم إصدارها بنجاح. ستتمكن من العثور على الشهادة في الدليل التالي:
swift/etc/letsencrypt/live/example.com/هنا، سيتم حفظ الملفات التالية:
-
cert.pem: الشهادة العامة. -
privkey.pem: المفتاح الخاص. -
chain.pem: سلسلة الشهادات. -
fullchain.pem: الشهادة الكاملة التي تضم الشهادة العامة وسلسلة الشهادات.
-
-
إعادة تشغيل خادم الويب:
بعد الحصول على الشهادة، يجب إعادة تشغيل خادم الويب الخاص بك لتمكين استخدام الشهادة الجديدة. إذا كنت تستخدم Nginx أو Apache، يمكنك إعادة تشغيل الخادم باستخدام الأوامر التالية:
bashsudo systemctl start nginx # أو apache2 إذا كنت تستخدم Apache
5. تكوين خادم الويب لاستخدام الشهادة
بعد الحصول على الشهادة وتثبيتها، يجب تكوين خادم الويب لاستخدامها. سنوضح كيفية تكوين خوادم Nginx و Apache.
تكوين Nginx
افترض أن ملف التكوين الخاص بموقعك في Nginx يقع في /etc/nginx/sites-available/example.com. يجب تعديل هذا الملف لتفعيل SSL باستخدام الشهادة والمفتاح الخاصين بك.
nginxserver {
listen 80;
server_name example.com www.example.com;
location / {
# إعدادات الموقع
}
# إعادة التوجيه إلى HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
# إعدادات الموقع
}
}
بعد تحديث ملف التكوين، يجب إعادة تحميل Nginx لتطبيق التغييرات:
bashsudo systemctl reload nginx
تكوين Apache
إذا كنت تستخدم Apache، يمكنك تفعيل SSL عن طريق تعديل ملفات التكوين في /etc/apache2/sites-available/example.com.conf.
apacheServerName example.com Redirect permanent / https://example.com/ ServerName example.com SSLEngine on SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # إعدادات الموقع
بعد تعديل ملف التكوين، يجب إعادة تحميل Apache:
bashsudo systemctl reload apache2
6. تجديد الشهادات
شهادات Let’s Encrypt صالحة لمدة 90 يومًا فقط، لكن Certbot يسهل عملية التجديد. يمكنك إعداد مهمة مجدولة (cron job) لتجديد الشهادات تلقائيًا قبل موعد انتهائها. لتحقق من إمكانية التجديد التلقائي، قم بتنفيذ الأمر التالي:
bashsudo certbot renew --dry-run
إذا كان كل شيء يعمل بشكل صحيح، يمكنك إضافة مهمة cron لتجديد الشهادات تلقائيًا كل أسبوع. افتح ملف crontab:
bashsudo crontab -e
ثم أضف السطر التالي:
bash0 3 * * 0 certbot renew --quiet
سيقوم هذا الأمر بمحاولة تجديد الشهادات كل يوم أحد في الساعة 3 صباحًا.
7. مشاكل شائعة وحلولها
1. المشكلة: خادم الويب يستخدم المنفذ 80:
-
الحل: تأكد من أن خادم الويب مغلق أو أن المنفذ 80 غير مستخدم عندما تقوم بطلب الشهادة.
2. المشكلة: فشل التحقق من النطاق:
-
الحل: تحقق من إعدادات DNS الخاصة بك وتأكد من أن النطاق يشير إلى العنوان IP الصحيح للخادم.
3. المشكلة: الشهادة غير معترف بها:
-
الحل: تأكد من أن الشهادات والمفاتيح الخاصة بها في المواقع الصحيحة، وأن ملفات التكوين لخادم الويب تشير إلى هذه الملفات بشكل صحيح.
8. الخاتمة
باتباع الخطوات المذكورة في هذا المقال، يمكنك الحصول على شهادة SSL من Let’s Encrypt وتثبيتها على خادم دبيان 10 باستخدام وضع Certbot المستقل. تتيح لك هذه الطريقة تأمين الاتصال بين الخادم والعملاء من خلال تشفير البيانات وضمان أمان الموقع الإلكتروني. تذكر أن تقوم بتجديد الشهادات بشكل دوري لضمان استمرار الحماية.

